﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WCFReserva;
using WCFAgencia;
using WCFAlojamento;
using WCFTipoAlojamento;
using WCFCategoria;
using WCFLocal;
using WCFCliente;
using WCFTipoTransporte;
using WCFTransporte;

public partial class detalhes : System.Web.UI.Page
{
    protected WCFReserva.WCFReservaClient wcfReserva = new WCFReserva.WCFReservaClient();
    protected WCFAgencia.WCFAgenciaClient wcfAgencia = new WCFAgencia.WCFAgenciaClient();
    protected WCFCliente.WCFClienteClient wcfCliente = new WCFCliente.WCFClienteClient();
    protected WCFLocal.WCFLocalClient wcfLocal = new WCFLocal.WCFLocalClient();
    protected WCFAlojamento.WCFAlojamentoClient wcfAlojamento = new WCFAlojamento.WCFAlojamentoClient();
    protected WCFTipoTransporte.WCFTipoTransporteClient wcfTipoTransporte = new WCFTipoTransporte.WCFTipoTransporteClient();
    protected WCFTransporte.WCFTransporteClient wcfTransporte = new WCFTransporte.WCFTransporteClient();
    protected WCFCategoria.WCFCategoriaClient wcfCategoria = new WCFCategoria.WCFCategoriaClient();
    protected WCFTipoAlojamento.WCFTipoAlojamentoClient wcfTipoAlojamento = new WCFTipoAlojamento.WCFTipoAlojamentoClient(); 

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["nome"] == null)
        {
            Response.Redirect("login.aspx");
        }

        if (Page.Request.QueryString["IDReserva"] != null)
        {
            int IDReserva=0;
            try
            {
                IDReserva = int.Parse(Page.Request.QueryString["IDReserva"]);
            }
            catch(Exception) {
                Response.Redirect("viagens.aspx");
            }

            try
            {
                Reserva reserva = new Reserva();
                reserva = wcfReserva.getByID(IDReserva);
                lreserva.InnerHtml = "" + reserva.IDReserva;

                Cliente cliente = new Cliente();
                cliente = wcfCliente.getByID(reserva.IDCliente);
                lcliente.InnerHtml = "" + cliente.nome;

                Agencia agencia = new Agencia();
                agencia = wcfAgencia.getByID(reserva.IDAgencia);
                lagencia.InnerHtml = "" + agencia.nome;
                lagencia.InnerHtml = lagencia.InnerHtml + "<br/>" + agencia.morada;
                lagencia.InnerHtml = lagencia.InnerHtml + "<br/>" + agencia.localidade;
                lagencia.InnerHtml = lagencia.InnerHtml + "<br/>" + agencia.codPostal;
                lagencia.InnerHtml = lagencia.InnerHtml + "<br/><b>Telefone: </b>" + agencia.telefone;
                lagencia.InnerHtml = lagencia.InnerHtml + "<br/><b>E-mail: </b>" + agencia.email;
                lagencia.InnerHtml = lagencia.InnerHtml + "<br/><b>Responsável: </b>" + agencia.responsavel;

                Local origem = new Local();
                origem = wcfLocal.getByID(reserva.IDPartida);
                lpartida.InnerHtml = origem.nome + " - " + origem.pais;

                ldataPartida.InnerHtml = "" + reserva.dataPartida;

                Local destino = new Local();
                destino = wcfLocal.getByID(reserva.IDChegada);
                ldestino.InnerHtml = destino.nome + " - " + destino.pais;

                ldatacheagada.InnerHtml = "" + reserva.dataChegada;

                Transporte transporteIda = new Transporte();
                transporteIda = wcfTransporte.getByID(reserva.IDTransporteIda);
                TipoTransporte tipoTransporteIda = new TipoTransporte();
                tipoTransporteIda = wcfTipoTransporte.getByID(transporteIda.IDTransporte);
                ltransporteIda.InnerHtml = tipoTransporteIda.descricao + " - " + transporteIda.IDTransporte;

                if (reserva.IDTransporteVolta != null)
                {
                    Transporte transporteVolta = new Transporte();
                    transporteVolta = wcfTransporte.getByID((int)reserva.IDTransporteVolta);
                    TipoTransporte tipoTtransporteVolta = new TipoTransporte();
                    tipoTtransporteVolta = wcfTipoTransporte.getByID(transporteVolta.IDTransporte);
                    ltransporteVolta.InnerHtml = tipoTtransporteVolta.descricao + " - " + transporteVolta.IDTransporte;
                }


                if (reserva.IDAlojamento != null)
                {
                    Alojamento alojamento = new Alojamento();
                    alojamento = wcfAlojamento.getByID((int)reserva.IDAlojamento);
                    TipoAlojamento alojamentoTipo = new TipoAlojamento();
                    alojamentoTipo = wcfTipoAlojamento.getByID(alojamento.IDLocal);
                    lalojamento.InnerHtml = "" + alojamentoTipo.descricao;
                    lalojamento.InnerHtml = lalojamento.InnerHtml + "<br/>" + alojamento.nome;
                    lalojamento.InnerHtml = lalojamento.InnerHtml + "<br/>" + alojamento.morada;


                    Local alojamentoLocal = new Local();
                    alojamentoLocal = wcfLocal.getByID(alojamento.IDLocal);
                    lalojamento.InnerHtml = lalojamento.InnerHtml + "<br/>" + alojamentoLocal.nome + " - " + alojamentoLocal.pais;

                    lalojamento.InnerHtml = lalojamento.InnerHtml + "<br/><b>Telefone: </b>" + alojamento.telefone;
                    lalojamento.InnerHtml = lalojamento.InnerHtml + "<br/><b>Email: </b>" + alojamento.email;

                    Categoria alojamentoCategoria = new Categoria();
                    alojamentoCategoria = wcfCategoria.getByID(alojamento.IDCategoria);
                    lalojamento.InnerHtml = lalojamento.InnerHtml + "<br/><b>Categoria: </b>" + alojamentoCategoria.descricao;
                }

                lnpessoas.InnerHtml = "" + reserva.nrPessoas;
                ldataReserva.InnerHtml = "" + reserva.dataReserva;
            }
            catch(Exception) {
                Response.Redirect("viagens.aspx");
            }
        }
        else {
            Response.Redirect("viagens.aspx");
        }

    }

}